package com.lipaluma.field.mapper.builder;

import java.util.List;

import com.lipaluma.field.mapper.FieldMapper;
import com.lipaluma.field.merge.MergingTargetFunction;

public interface AddNewFieldMapperOnlyBuilder {
	AddNewFieldMapperOnlyBuilder mapNextFieldInOneToMany();
	FieldMapperBuilder addFieldMapper(String fieldName, FieldMapper mapper);
	NeedMappingBuilder mapFieldAutomatically(String fieldName);
	NeedMappingBuilder mapMultipleFieldAutomatically(String fieldName);
	MapObjectBuilder mapObject(String fieldName, Class<?> targetClass);
	FieldMapperBuilder mapObject(String fieldName, List<FieldMapper> fieldMappers);
	FieldMapperBuilder mapObject(String fieldName, List<FieldMapper> fieldMappers, boolean targetMergeable);
	FieldMapperBuilder mapObject(String fieldName, List<FieldMapper> fieldMappers, MergingTargetFunction mergingTargetFunction);
}
